package com.ruoyi.income.service;

import java.util.List;
import com.ruoyi.income.domain.DistributionIncome;

/**
 * 订单返佣收入信息Service接口
 * 
 * @author ruoyi
 * @date 2025-10-11
 */
public interface IDistributionIncomeService 
{
    /**
     * 查询订单返佣收入信息
     * 
     * @param incomeId 订单返佣收入信息主键
     * @return 订单返佣收入信息
     */
    public DistributionIncome selectDistributionIncomeByIncomeId(Long incomeId);

    /**
     * 查询订单返佣收入信息列表
     * 
     * @param distributionIncome 订单返佣收入信息
     * @return 订单返佣收入信息集合
     */
    public List<DistributionIncome> selectDistributionIncomeList(DistributionIncome distributionIncome);

    /**
     * 新增订单返佣收入信息
     * 
     * @param distributionIncome 订单返佣收入信息
     * @return 结果
     */
    public int insertDistributionIncome(DistributionIncome distributionIncome);

    /**
     * 修改订单返佣收入信息
     * 
     * @param distributionIncome 订单返佣收入信息
     * @return 结果
     */
    public int updateDistributionIncome(DistributionIncome distributionIncome);

    /**
     * 批量删除订单返佣收入信息
     * 
     * @param incomeIds 需要删除的订单返佣收入信息主键集合
     * @return 结果
     */
    public int deleteDistributionIncomeByIncomeIds(Long[] incomeIds);

    /**
     * 删除订单返佣收入信息信息
     * 
     * @param incomeId 订单返佣收入信息主键
     * @return 结果
     */
    public int deleteDistributionIncomeByIncomeId(Long incomeId);

    /**
     * 更新佣金状态
     *
     * @param incomeId 佣金ID
     * @param incomeStatus 状态：0-待计算 1-已计算 2-已发放 3-已取消 4-已扣回
     * @return 结果
     */
    int updateIncomeStatus(Long incomeId, String incomeStatus);

    /**
     * 根据分销员ID查询收入列表
     *
     * @param distributorId 分销员ID
     * @return 收入信息列表
     */
    List<DistributionIncome> selectIncomeByDistributorId(Long distributorId);

    /**
     * 根据订单ID和分销员ID查询收入信息
     *
     * @param orderId 订单ID
     * @param distributorId 分销员ID
     * @return 收入信息
     */
    DistributionIncome selectIncomeByOrderIdAndDistributorId(Long orderId, Long distributorId);
}
